/*
    Project: OCMF (Operant Chamber Management Framework)
    Version: 1.0
    Author: Copyright (C) 2010, Samuel Delaney & Andrew Harvey
    Licence:
        This file is part of OCMF.

            OCMF is free software: you can redistribute it and/or modify
            it under the terms of the GNU General Public License as published by
            the Free Software Foundation, either version 3 of the License, or
            (at your option) any later version.

            OCMF is distributed in the hope that it will be useful,
            but WITHOUT ANY WARRANTY; without even the implied warranty of
            MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
            GNU General Public License for more details.

            You should have received a copy of the GNU General Public License
            along with OCMF.  If not, see <http://www.gnu.org/licenses/>.
*/

#include "Image.h"


Image::Image(): ActionCollection(NULL)
{
}


Image::Image(QDomElement imageElement, Action * parent):ActionCollection(imageElement, parent)
{
    //set the name from the xml attribute
    Name = imageElement.attributeNode("Name").value();
}

Image::~Image()
{

}

void Image::Do()
{
    //log result
    Action::WriteResult(ToResultXml());

    //iterate over all actions in the collection
    for(currentActionIndex = 0; currentActionIndex < Actions.count(); currentActionIndex++)
        //call abstract method on action pointer
        Actions[currentActionIndex]->Do();
}

QDomElement Image::ToResultXml()
{
    QDomElement imageElement;

    //set the tag value
    imageElement.setTagName("Image");

    //set the timestamp attribute
    imageElement.setAttribute("TimeStamp", TimeStamp.toString(Qt::ISODate));

    //set the name attribute
    imageElement.setAttribute("Name", Name);

    //set the name attribute
    imageElement.setAttribute("X", -1);

    //set the name attribute
    imageElement.setAttribute("Y", -1);

    //return the xml node
    return imageElement;
}
